package com.vip.workflow.service;

import com.vip.common.response.Result;
import com.vip.workflow.dto.TaskDTO;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 * 任务管理 Service
 *
 * @author wgb
 * @date 2020/5/8 9:31
 */
public interface IFlowTaskService {
    /**
     * 获取待办事项列表
     *
     * @return
     */
    Result<List<TaskDTO>> getBackLogTask();

    /**
     * 启动工作流，创建新的任务
     *
     * @param processDefinitionId
     * @param businessId
     * @param userId
     * @param vars
     * @return
     */
    Result<String> startWorkFlow(String processDefinitionId, String businessId, String userId, Map<String, Object> vars);
    /**
     * 完成当前节点任务
     *
     * @param taskId
     * @param vars
     * @return
     */
    Result<String> completeCurrTask(String taskId, Map<String, Object> vars);

    /**
     * 关闭当前任务
     *
     * @param taskId
     * @return
     */
    Result<String> closeCurrTask(String taskId);

    /**
     * 读取带跟踪的图片
     *
     * @param taskId 任务ID
     */
    InputStream getTaskTrackPhoto(String taskId);

    /**
     * 批量关闭任务
     *
     * @param taskIds
     * @return
     */
    Result<String> closeTaskMulti(List<String> taskIds);
}
